package pe.gob.osce.sirenas.dao.convert;


import java.util.ArrayList;
import java.util.List;

import pe.gob.osce.sirenas.model.HistorialEstadoDTO;
import pe.gob.osce.sirenas.model.jpa.Auditoria;
import pe.gob.osce.sirenas.model.jpa.HistorialEstado;

public class HistorialEstadoConvert {

	
	private  HistorialEstadoConvert(){};
	
	
	public static HistorialEstado createHistEstadoJPA(HistorialEstadoDTO historialEstadoDTO,Auditoria auditoria) {
		HistorialEstado objetoJPA= new HistorialEstado();		
		
		objetoJPA.setIdEstado(historialEstadoDTO.getIdEstado());
		objetoJPA.setIdFicha(historialEstadoDTO.getIdFicha());
		objetoJPA.setIdEstado(historialEstadoDTO.getIdEstado() );
		objetoJPA.setIndVigente(historialEstadoDTO.getIndVigente());
		objetoJPA.setFecInicio(historialEstadoDTO.getFecInicio());
		objetoJPA.setFecFin(historialEstadoDTO.getFecFin());	
		objetoJPA.setIdHistAnterior(historialEstadoDTO.getIdHistAnterior());	
		objetoJPA.setIdIncidencia(historialEstadoDTO.getIdIncidencia());
		objetoJPA.setEstado(historialEstadoDTO.getEstado());
		objetoJPA.setAuditoria(auditoria);
				
		return objetoJPA;
	}
	
	
	public static HistorialEstadoDTO createHistEstadoDTO(HistorialEstado historialEstadoJPA) {
		HistorialEstadoDTO objetoDTO= new HistorialEstadoDTO();

		objetoDTO.setIdHistEstado(historialEstadoJPA.getIdHistEstado());
		objetoDTO.setIdFicha(historialEstadoJPA.getIdFicha());
		objetoDTO.setIdEstado(historialEstadoJPA.getIdEstado() );
		objetoDTO.setIndVigente(historialEstadoJPA.getIndVigente());
		objetoDTO.setFecInicio(historialEstadoJPA.getFecInicio());
		objetoDTO.setFecFin(historialEstadoJPA.getFecFin());
		objetoDTO.setIdHistAnterior(historialEstadoJPA.getIdHistAnterior());
		objetoDTO.setIdIncidencia(historialEstadoJPA.getIdIncidencia());
		objetoDTO.setEstado(historialEstadoJPA.getEstado());
		objetoDTO.setAuditoriaDTO(AuditoriaConvert.createDTO(historialEstadoJPA.getAuditoria()));
					 
		return objetoDTO;
	}

	public static HistorialEstadoDTO createHistEstadoActivoDTO(List<HistorialEstado> listaHistorialEstadoJPA) {
		HistorialEstadoDTO objetoDTO= new HistorialEstadoDTO();
		
		for (HistorialEstado historialEstadoJPA : listaHistorialEstadoJPA) {
			if(historialEstadoJPA.getIndVigente()){
				objetoDTO.setIdHistEstado(historialEstadoJPA.getIdHistEstado());
				objetoDTO.setIdFicha(historialEstadoJPA.getIdFicha());
				objetoDTO.setIdEstado(historialEstadoJPA.getIdEstado() );
				objetoDTO.setIndVigente(historialEstadoJPA.getIndVigente());
				objetoDTO.setFecInicio(historialEstadoJPA.getFecInicio());
				objetoDTO.setFecFin(historialEstadoJPA.getFecFin());
				objetoDTO.setIdHistAnterior(historialEstadoJPA.getIdHistAnterior());
				objetoDTO.setIdIncidencia(historialEstadoJPA.getIdIncidencia());
				objetoDTO.setEstado(historialEstadoJPA.getEstado());
				objetoDTO.setAuditoriaDTO(AuditoriaConvert.createDTO(historialEstadoJPA.getAuditoria()));
				break;
			}
		}
					 
		return objetoDTO;
	}
	
	public static List<HistorialEstadoDTO> createListaHisEstadoDTO(List<HistorialEstado> listaHistEstadoJPA) {
		List<HistorialEstadoDTO> listaObjetoDTO= new ArrayList<HistorialEstadoDTO>();
		HistorialEstadoDTO objetoDTO;
		
		for (HistorialEstado historialEstadoJPA:listaHistEstadoJPA ) {
			objetoDTO = new HistorialEstadoDTO();
			objetoDTO.setIdHistEstado(historialEstadoJPA.getIdHistEstado());
			objetoDTO.setIdFicha(historialEstadoJPA.getIdFicha());
			objetoDTO.setIdEstado(historialEstadoJPA.getIdEstado() );
			objetoDTO.setIndVigente(historialEstadoJPA.getIndVigente());
			objetoDTO.setFecInicio(historialEstadoJPA.getFecInicio());
			objetoDTO.setFecFin(historialEstadoJPA.getFecFin());
			objetoDTO.setIdHistAnterior(historialEstadoJPA.getIdHistAnterior());
			objetoDTO.setIdIncidencia(historialEstadoJPA.getIdIncidencia());
			
			objetoDTO.setEstado(historialEstadoJPA.getEstado());
			objetoDTO.setAuditoriaDTO(AuditoriaConvert.createDTO(historialEstadoJPA.getAuditoria()));
			
			listaObjetoDTO.add(objetoDTO);
		}
		
		return listaObjetoDTO;
	}
	
	
}
